﻿#pragma once
#include"../ICuDGGSKernel.cuh"


_NNU_DGGS_BEGIN
    namespace Kernel::Projection
    {
        class Project;
    }
    using namespace Kernel::Projection;
    namespace Kernel::ISEA4H
    {
        class CuISEA4HImpl:public ICuDGGSKernel
        {
        public:
            //初始化
            __DGGS_CPGPU__ void init()override ;
            //释放
            __DGGS_CPGPU__ void release()override ;

            //编码转地理坐标
            __DGGS_CPGPU__ bool decode(DGGSElementCode code, GeoCoord& coords)override;
            //地理坐标转编码
            __DGGS_CPGPU__ bool encode(GeoCoord coords, DGGSElementCode& code)override;

        private:
            //投影类
            Project* isea=NULL;
            //格网类型
            DGGSGridType gridType = DGGSGridType::DGGS_ISEA4H;

            int level = 0;
        };
    }
_NNU_DGGS_END

